home *** CD-ROM | disk | FTP | other *** search
- 4DECOMP V1.0 (c) 1993 by Akisoft, Vienna
-
- 4DOSs New Version 5.0 came up right now! It has a lot of new features,
- including BATCOMP.EXE, also from JP Software, which is assumed to compress
- .BTM-Files.
-
- Its purpose is to make .BTM-files shorter (to use less space on the hard-
- disk) and to make .BTM-files something like "encrypted". That makes it
- possible for batch-file-programmers to distribute their files without
- distributing the batch-file-source-code, which is imanent to distributing
- flat batch-files. The encryption algorithm is as simple as the decryption
- algorithm. A very short program, with pascal-source-code, can decrypt such
- batch-files. The maximum file-length is, like in .BTM-files, limited to 64k.
-
- File-format of the compressed file:
- ===================================
- (like everything in this package distributed without any warranty)
-
- The first 2 Bytes are equal to EBh BEh, the indicator for compressed 4DOS-
- .BTM-files. the next 2 Bytes contain the size of the original BATCH-file.
-
- The encryption (compression) uses the following cheme: from position 5 there
- are 30 characters stored, which are the most frequently used characters. The
- rest of the file contains nibbles (2 nibbles per byte).The first 14 of the
- most frequently used characters have nibble-codes from 2 to 15 (2h to Fh),
- the others have 2-nibble-codes (use the same size as one byte, but may be lo-
- cated separated inside 2 bytes), the first nibble is always 1 and the second
- goes from 0 to 15 (0h to Fh). The nibble code 0 (at a first-level-nibble-
- position) is used to indicate that the following 2 nibbles represent one char
- in ASCII, but the lower 4 bits swapped with the upper 4 (the 2 nibbles are
- swapped). Summary: If there are only a few different chars inside the text,
- for example by using a lot of ECHO-directives, the text can be compressed to
- one half of its original size (1 char uses only 1 nibble of storage place). If
- there are a lot of different characters in the text, and most of them appear
- often, it is possible that the "compressed" file is larger than the original
- batch-file.
-
- A short example:
-
- Original .BTM-File:
-
- ECHO OFF
- echo abcdefghijklmnopqrstuvwxyz
-
- Compressed .BTM-File (HEX-output of DEBUG):
-
- 0000 EB BE 28 00 20 46 4F 63-65 68 6F 0D 43 45 48 61 ..(. FOceho.CEHa
- 0010 62 64 66 67 69 6A 6B 6C-6D 6E 70 71 72 73 74 75 bdfgijklmnpqrstu
- 0020 76 77 BA C4 24 33 96 57-82 DE 5F 61 01 17 12 13 vw..$3.W.._a....
- 0030 14 15 16 17 81 81 91 A1-B1 C1 D1 E1 F0 87 09 70 ...............p
- 0040 A7 .
-
- *) 0000: EB BE, indicates compressed .BTM-file.
- *) 0002: 28 00, size of original .BTM-file (0028h=40 bytes).
- *) 0005-0011: The very most frequently used characters, 0dh stands
- for both 0dh and 0ah (carriage return+line feed).
- *) 0012-0022: The other most frequently used characters.
- *) 0023-0040: Token for the used characters in the original .BTM-file:
- BA = Token bh (Token 11 is "E"), Token ah (Token 10 is "C")
- C4 = Token for "H" and "O"
- 24 = Token for " " and "O"
- 33 = twice the Token for "F"
- 96 = Token for NEW-LINE and "e"
- 57 82 DE 5F = Token for "cho abcd"
- 61 = Token for "e" and prefix for second table
- 01 = Token 0 from second table = "f" + prefix for second table
- 17 = Token 1 from second table = "g" + first Token 7 = "h"
- 12 13 14 15 16 17 = all token from second table "ijklmn"
- 81 = Token "o" + prefix, second table
- 81 91 A1 B1 C1 D1 E1 = Token "pqrstuv" from second table
- F0 87 = Token 15 from second table "w" and character 78h="x"
- 09 70 A7 = again Token for character, character "y", token, "z"
-
- That's it!
-
- Use the program as long as JP software doesn't change the encryption
- algorithm ...
-
- The program, source, documentation is uploaded "as is", without any warranty,
- etc. Use, modify, copy, and delete the program excessively the way you want,
- but keep in mind, the idea was MINE (pow!)!
-
- mfg to all my hacking friends i don't know yet
-
- and "Viele Gruesse aus Oesterreich!"
-
- Akisoft, Vienna (c) december 1993